package com.saep.vista;

import com.saep.logica.LogicaTipoPracticaLocal;
import com.saep.modelo.Tipopractica;
import com.sun.org.apache.xalan.internal.xsltc.util.IntegerArray;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author Estudiante
 */
@ManagedBean(name = "tipoPracticaVista")
@RequestScoped
public class tipoPracticaVista {

    @EJB
    LogicaTipoPracticaLocal tipoLogica;

    private InputText txtcodigoTipoPractica;
    private InputText txtNombreTipoPractica;
    private InputText txtDescripcionTipoPractica;
    private CommandButton btnRegistrarTipoPractica;
    private CommandButton btnModificarTipoPractica;
    private CommandButton btnEliminarTipoPractica;
    private CommandButton btnLimpiarTipoPractica;
    private Tipopractica selectedTipoPracticas;
    private List<Tipopractica> listaTipoPracticas;

    public tipoPracticaVista() {
    }

    public LogicaTipoPracticaLocal getTipoLogica() {
        return tipoLogica;
    }

    public void setTipoLogica(LogicaTipoPracticaLocal tipoLogica) {
        this.tipoLogica = tipoLogica;
    }

    public InputText getTxtcodigoTipoPractica() {
        return txtcodigoTipoPractica;
    }

    public void setTxtcodigoTipoPractica(InputText txtcodigoTipoPractica) {
        this.txtcodigoTipoPractica = txtcodigoTipoPractica;
    }

    public InputText getTxtNombreTipoPractica() {
        return txtNombreTipoPractica;
    }

    public void setTxtNombreTipoPractica(InputText txtNombreTipoPractica) {
        this.txtNombreTipoPractica = txtNombreTipoPractica;
    }

    public InputText getTxtDescripcionTipoPractica() {
        return txtDescripcionTipoPractica;
    }

    public void setTxtDescripcionTipoPractica(InputText txtDescripcionTipoPractica) {
        this.txtDescripcionTipoPractica = txtDescripcionTipoPractica;
    }

    public CommandButton getBtnRegistrarTipoPractica() {
        return btnRegistrarTipoPractica;
    }

    public void setBtnRegistrarTipoPractica(CommandButton btnRegistrarTipoPractica) {
        this.btnRegistrarTipoPractica = btnRegistrarTipoPractica;
    }

    public CommandButton getBtnModificarTipoPractica() {
        return btnModificarTipoPractica;
    }

    public void setBtnModificarTipoPractica(CommandButton btnModificarTipoPractica) {
        this.btnModificarTipoPractica = btnModificarTipoPractica;
    }

    public CommandButton getBtnEliminarTipoPractica() {
        return btnEliminarTipoPractica;
    }

    public void setBtnEliminarTipoPractica(CommandButton btnEliminarTipoPractica) {
        this.btnEliminarTipoPractica = btnEliminarTipoPractica;
    }

    public CommandButton getBtnLimpiarTipoPractica() {
        return btnLimpiarTipoPractica;
    }

    public void setBtnLimpiarTipoPractica(CommandButton btnLimpiarTipoPractica) {
        this.btnLimpiarTipoPractica = btnLimpiarTipoPractica;
    }

    public Tipopractica getSelectedTipoPracticas() {
        return selectedTipoPracticas;
    }

    public void setSelectedTipoPracticas(Tipopractica selectedTipoPracticas) {
        this.selectedTipoPracticas = selectedTipoPracticas;
    }

    public List<Tipopractica> getListaTipoPracticas() {

        if (listaTipoPracticas == null) {
            try {
                listaTipoPracticas = tipoLogica.consultarPorTipos();
            } catch (Exception ex) {
                Logger.getLogger(tipoPracticaVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return listaTipoPracticas;
    }

    public void setListaTipoPracticas(List<Tipopractica> listaTipoPracticas) {
        this.listaTipoPracticas = listaTipoPracticas;
    }

    public void funcion_limpiar() {
        txtcodigoTipoPractica.setValue("");
        txtNombreTipoPractica.setValue("");
        txtDescripcionTipoPractica.setValue("");
        btnRegistrarTipoPractica.setDisabled(false);
        btnModificarTipoPractica.setDisabled(true);
        btnEliminarTipoPractica.setDisabled(true);
        txtcodigoTipoPractica.setDisabled(false);
    }
    
    public void funcion_registrar(){
        try {
            Tipopractica t = new Tipopractica();
            t.setCodigotipopractica(Integer.parseInt(txtcodigoTipoPractica.getValue().toString()));
            t.setNombretipopractica(txtNombreTipoPractica.getValue().toString());
            t.setDescripciontipopractica(txtDescripcionTipoPractica.getValue().toString());
            tipoLogica.registrar(t);
            FacesContext.getCurrentInstance().addMessage("mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Información", "El tipo de practica se registró con éxito"));
        } catch (Exception ex) {
            FacesContext.getCurrentInstance().addMessage("mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERROR", ex.getMessage()));
            Logger.getLogger(tipoPracticaVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        listaTipoPracticas = null;
        funcion_limpiar();
        btnModificarTipoPractica.setDisabled(false);
        btnLimpiarTipoPractica.setDisabled(false);
    }
    
    public void funcion_seleccionar(SelectEvent event){
        Tipopractica tipoSeleccionada = (Tipopractica) event.getObject();
        txtcodigoTipoPractica.setValue(tipoSeleccionada.getCodigotipopractica());
        txtNombreTipoPractica.setValue(tipoSeleccionada.getNombretipopractica());
        txtDescripcionTipoPractica.setValue(tipoSeleccionada.getDescripciontipopractica());
        
        txtcodigoTipoPractica.setDisabled(true);
        btnRegistrarTipoPractica.setDisabled(true);
        btnModificarTipoPractica.setDisabled(false);
        btnEliminarTipoPractica.setDisabled(false);
    }
      public void funcion_modificar() {
        try {
            Tipopractica t = new Tipopractica();
            t.setCodigotipopractica(Integer.parseInt(txtcodigoTipoPractica.getValue().toString()));
            t.setNombretipopractica(txtNombreTipoPractica.getValue().toString());
            t.setDescripciontipopractica(txtDescripcionTipoPractica.getValue().toString());
            tipoLogica.modificar(t);
            FacesContext.getCurrentInstance().addMessage("mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Información", "El tipo de practica se modificó con éxito"));
        } catch (Exception ex) {
            FacesContext.getCurrentInstance().addMessage("mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERROR", ex.getMessage()));
            Logger.getLogger(empresaVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        listaTipoPracticas = null;
        txtcodigoTipoPractica.setDisabled(false);
        funcion_limpiar();
        
      }
      
      public void funcion_eliminar() {
        try {
            Tipopractica t = new Tipopractica();
            t.setCodigotipopractica(Integer.parseInt(txtcodigoTipoPractica.getValue().toString()));
            tipoLogica.eliminar(t);
            FacesContext.getCurrentInstance().addMessage("mensaje", new FacesMessage(FacesMessage.SEVERITY_INFO, "Información", "El tipo de practica se eliminó con éxito"));
        } catch (Exception ex) {
            FacesContext.getCurrentInstance().addMessage("mensaje", new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERROR", ex.getMessage()));
            Logger.getLogger(empresaVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        listaTipoPracticas = null;
        funcion_limpiar();
    }
      
      
}
